package com.example.administrator.liveapp.utils;

import android.content.Context;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;

import com.example.administrator.liveapp.R;

/**
 * Created by Administrator on 2017/1/5 0005.
 */
public class NumberAddSubView extends LinearLayout implements View.OnClickListener{

    private Button btn_sub;
    private TextView tv_num;
    private Button btn_add;
    private Context context;

    private int value = 1;//当前值
    private int minValue = 1;//最小值
    private int maxValue = 99;//最大值

    public void setValue(int value) {
        this.value = value;
        tv_num.setText(value+"");
    }

    public void setMinValue(int minvalue) {
        this.minValue = minvalue;
    }

    public void setMaxValue(int maxValue) {
        this.maxValue = maxValue;
    }

    public int getValue() {
        String var = tv_num.getText().toString().trim();
        if(!TextUtils.isEmpty(var)){
            //取出当前文本值，把值赋给当前值属性Value
            value = Integer.parseInt(var);
        }
        return value;
    }
    public int getMinValue() {
        return minValue;
    }

    public int getMaxValue() {
        return maxValue;
    }

    public NumberAddSubView(Context context) {
        this(context,null);
    }

    public NumberAddSubView(Context context, AttributeSet attrs) {
        this(context, attrs,0);
    }

    public NumberAddSubView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        this.context = context;
        //初始化控件
        initView(context);
    }

    private void initView(Context context) {
        View view = inflate(context, R.layout.number_add_sub,this);
        btn_sub = (Button) view.findViewById(R.id.btn_sub);
        tv_num = (TextView) view.findViewById(R.id.tv_num);
        btn_add = (Button) view.findViewById(R.id.btn_add);
        btn_add.setOnClickListener(this);
        btn_sub.setOnClickListener(this);
    }

    @Override
    public void onClick(View view) {
        switch (view.getId()){
            case R.id.btn_add:
                if(value<getMaxValue()){
                    value += 1;
                }
                setValue(value);
                if(listener != null){
                    listener.addNumber(view,value);
                }
                break;
            case R.id.btn_sub:
                if(value>minValue){
                    value -= 1;
                }
                setValue(value);
                if(listener != null){
                    listener.addNumber(view,value);
                }
                break;
        }
    }

    /**
     * 监听数字控件的减少和增加的接口
     */
    public interface OnNumberClickListener{
        /**
         * 当数字控件被减少时回调的方法
         * @param view
         * @param Value
         */
        void subNumber(View view, int Value);

        /**
         * 当数字控件被增加时回调的方法
         * @param view
         * @param Value
         */
        void addNumber(View view, int Value);
    }

    private OnNumberClickListener listener;

    /**
     * 设置监听数字按钮的方法
     * @param listener
     */
    public void setOnNumberClickListener(OnNumberClickListener listener) {
        this.listener = listener;
    }
}
